home *** CD-ROM | disk | FTP | other *** search
/ LOGIC Apps / Logic-APPLE_II_APPS.iso / mac / LOGIC Apple II 5.25" Library - ProDOS / PRO050.dsk / BAL.bas next >
BASIC Source File  |  2012-02-16  |  11KB  |  321 lines

  1. 10  GOSUB 62000
  2. 20 D$ =  CHR$(4)
  3. 30  ONERR  GOTO 50000
  4. 40  PRINT D$;"PR#3"
  5. 1500  PRINT D$;"OPEN /RAM/RECON.BAL.DATA"
  6. 1510  PRINT D$;"READ /RAM/RECON.BAL.DATA"
  7. 1520  INPUT PRB$
  8. 1530  PRINT D$;"CLOSE /RAM/RECON.BAL.DATA"
  9. 1800 PRB =  VAL(PRB$)
  10. 1910  CALL  -912
  11. 2000  GOTO 4000
  12. 2200  REM  READ TIME
  13. 2205  IF FC = 1  THEN TM$ = "": RETURN 
  14. 2210  PRINT D$;"IN#4": PRINT D$;"PR#4"
  15. 2220  INPUT ":";CK$
  16. 2230  PRINT D$;"IN#0": PRINT D$;"PR#0"
  17. 2240  PRINT D$;"PR#3"
  18. 2260 TM$ =  MID$ (CK$,12,2) +":" + MID$ (CK$,15,2)
  19. 2270 X$ =  LEFT$(TM$,2):X =  VAL( MID$ (CK$,12,2))
  20. 2280  IF X <12  THEN TM$ = TM$ +"  A.M.": RETURN 
  21. 2290  IF X <13  THEN TM$ = TM$ +"  P.M.": RETURN 
  22. 2300 X = X -12:X$ =  STR$(X):TM$ = X$ + RIGHT$(TM$,3) +"  P.M."
  23. 2310  RETURN 
  24. 4000  REM  BALANCING
  25. 4002 RBL = 0
  26. 4005  HOME 
  27. 4008  HTAB 15: VTAB 2: PRINT "ENTER INTEREST FOR MONTH AND SAVE DATA BEFORE BALANCING"
  28. 4009  HTAB 15: PRINT "-------------------------------------------------------"
  29. 4010  HTAB 13: VTAB 6: PRINT "ENTER A BEGINNING TRANSACTION NUMBER, <M> FOR MAIN MENU, OR "
  30. 4015  HTAB 19: PRINT "<B> TO BEGIN WITH FIRST UNRECONCILED TRANSACTION"
  31. 4020 IN$ = "":H = 39:V = 10
  32. 4030  HTAB H: VTAB V
  33. 4040  IF FF = 1  THEN FF = 0: HTAB H: VTAB V: PRINT IN$;" ": GOTO 4060
  34. 4050  PRINT IN$
  35. 4060 HH = H + LEN(IN$): HTAB HH: VTAB V
  36. 4070  GET X$
  37. 4080  IF X$ =  CHR$(13)  THEN 4200
  38. 4090  IF X$ =  CHR$(10)  OR X$ =  CHR$(11)  THEN 4030
  39. 4100  IF X$ =  CHR$(21)  THEN 4030
  40. 4110  IF X$ =  CHR$(8)  OR X$ =  CHR$(127)  THEN FF = 1: IF  LEN(IN$) <2  THEN 4000
  41. 4120  IF FF = 1  THEN IN$ =  LEFT$(IN$, LEN(IN$) -1): GOTO 4030
  42. 4130  IF X$ =  CHR$(27)  THEN 40000
  43. 4140  IF X$ = "M"  OR X$ = "m"  THEN 40000
  44. 4145  IF X$ = "B"  OR X$ = "b"  THEN 5000
  45. 4150  IF  ASC(X$) <48  OR  ASC(X$) >57  THEN 4030
  46. 4160 IN$ = IN$ +X$
  47. 4170  GOTO 4030
  48. 4200 BTN$ = IN$
  49. 4500 BTN =  VAL(BTN$)
  50. 4505  IF BTN >FTN%  THEN  HTAB 25: VTAB 21: PRINT "THIS TRANSACTION DOES NOT EXIST": HTAB 40: VTAB 22: GET X$: GOTO 4000
  51. 4510 M = BTN -1
  52. 4520  GOTO 10000
  53. 5000  REM  GET STARTING POINT
  54. 5010  PRINT D$;"OPEN /RAM/MAIN.DATA,L$96"
  55. 5020 ZN = FTN% -1
  56. 5030  FOR I = 1 TO ZN
  57. 5040 TN = I
  58. 5050  PRINT D$;"READ /RAM/MAIN.DATA,R";TN
  59. 5060  INPUT TN%
  60. 5070  INPUT DT$
  61. 5080  INPUT CN$
  62. 5090  INPUT AMT$
  63. 5100  INPUT PY$
  64. 5110  INPUT R$
  65. 5120  IF R$ = "R"  THEN  NEXT 
  66. 5125  PRINT D$;"CLOSE /RAM/MAIN.DATA"
  67. 5130  IF TN <4  THEN BTN = 1: GOTO 5150
  68. 5140 BTN = TN -3
  69. 5150 M = BTN -1
  70. 10000  REM  BALANCING
  71. 10010 V = 3: HOME 
  72. 10020  IF PF = 1  THEN  PRINT D$;"PR#1"
  73. 10030  VTAB 1: PRINT "TR#";
  74. 10040  HTAB 6: PRINT "DATE";
  75. 10050  HTAB 16: PRINT "CK#";
  76. 10060  HTAB 22: PRINT "PAY TO:";
  77. 10070  HTAB 48: PRINT "R";
  78. 10080  HTAB 51: PRINT "AMOUNT";
  79. 10090  HTAB 61: PRINT "CAT";
  80. 10100  HTAB 70: PRINT "MEMO"
  81. 10110  VTAB 2: PRINT "-------------------------------------------------------------------------------"
  82. 10120  POKE 34,2
  83. 10130 MTN = BTN:TN = MTN:M = 1
  84. 10140  IF PF = 1  THEN  PRINT D$;"PR#0"
  85. 10150  PRINT D$;"OPEN /RAM/MAIN.DATA,L$96"
  86. 10160  FOR I = M TO 19 +M
  87. 10170  IF TN = FTN%  THEN 10710
  88. 10180  PRINT D$;"READ /RAM/MAIN.DATA,R";TN
  89. 10190  INPUT TN%
  90. 10200  INPUT DT$
  91. 10210  INPUT CN$
  92. 10220  INPUT AMT$
  93. 10230 RA$(I) = AMT$
  94. 10240  GOSUB 63000: LET PY$ = IN$
  95. 10250  IF F = 1  THEN F = 1: IF TP$ < > LEFT$(PY$, LEN(TP$))  THEN 10700
  96. 10255  INPUT R$
  97. 10257  IF R$ = "R"  THEN RA$(I) = "0.00"
  98. 10260  INPUT CTG$
  99. 10270  GOSUB 63000: LET MEM$ = IN$
  100. 10500  REM  PRINT
  101. 10510  IF PF = 1  THEN  PRINT D$;"PR#1"
  102. 10520  VTAB V: PRINT TN%;
  103. 10530  HTAB 6: PRINT DT$;
  104. 10540  HTAB 16: PRINT CN$;
  105. 10550  HTAB 22: PRINT  LEFT$(PY$,25);
  106. 10560  HTAB 48: PRINT R$;
  107. 10570 AMT =  VAL(AMT$): IF AMT <0  THEN AMT =  -1 *AMT
  108. 10575 J = AMT *100:Z$ =  STR$( INT(J +.01)): IF  LEN(Z$) = 1  THEN Z$ = "0" +Z$
  109. 10590 Y =  LEN(Z$) -2
  110. 10600  IF Y <0  THEN Z$ = AMT$
  111. 10610  IF Y < = 0  THEN Y = 1
  112. 10620 H = 56 -Y
  113. 10630  HTAB H: PRINT  INT(AMT +.001);"."; RIGHT$(Z$,2);
  114. 10650  HTAB 61: PRINT CTG$;
  115. 10660  HTAB 70: PRINT  LEFT$(MEM$,10);
  116. 10670  IF PF = 1  THEN  PRINT D$;"PR#0"
  117. 10680 V = V +1: IF V = 24  THEN V = 23
  118. 10690 TN = TN +1
  119. 10695 RO$(I) = R$
  120. 10700  NEXT 
  121. 10710  PRINT D$;"CLOSE /RAM/MAIN.DATA"
  122. 10720 VB = V -1
  123. 10730  IF PF = 1  THEN  PRINT D$;"PR#1"
  124. 10740  PRINT 
  125. 10750  PRINT "------------------------------------------------------------------------------"
  126. 10760  POKE 35,22: CALL  -958
  127. 10770  HTAB 5: VTAB 24: PRINT "MARK <R>ETURNED TRANSACTIONS, GOTO <N>EXT FIELD, OR  PRESS <ESC> TO EXIT";
  128. 10780 V = 3:H = 48
  129. 10790  HTAB 48: VTAB 3:I = M
  130. 11000  GET X$
  131. 11010  IF X$ =  CHR$(27)  THEN  POKE 35,24: POKE 34,0: GOSUB 14000: GOTO 4000
  132. 11015  IF X$ = "N"  OR X$ = "n"  THEN 12000
  133. 11020  IF X$ =  CHR$(11)  THEN : GOTO 11100
  134. 11030  IF X$ =  CHR$(10)  THEN : GOTO 11120
  135. 11035  IF RO$(I) = "R"  THEN X$ = "R"
  136. 11040  IF X$ = "R"  OR X$ = "r"  THEN R$(I) = "R": HTAB 48: VTAB V: PRINT "R";: GOTO 11070
  137. 11050  IF X$ =  CHR$(13)  OR X$ =  CHR$(32)  THEN R$(I) = " ": HTAB 48: VTAB V: PRINT " ";: GOTO 11070
  138. 11060  IF X$ < >"R"  THEN 11000
  139. 11070  IF V = VB  THEN  HTAB H: GOTO 11000
  140. 11080 V = V +1:TN = TN +1:I = I +1
  141. 11090  HTAB H: VTAB V: GOTO 11000
  142. 11100  IF V = 3  THEN 11000
  143. 11110 TN = TN -1:V = V -1:I = I -1: GOTO 11090
  144. 11120  IF V = VB  THEN 11000
  145. 11130 TN = TN +1:V = V +1:I = I +1: GOTO 11090
  146. 12000  REM  NEXT GROUP
  147. 12010  HTAB 79: VTAB 2: CALL  -958
  148. 12020 M = M +20:MTN = MTN +20:TN = MTN
  149. 12030  IF TN > = FTN%  THEN 13000
  150. 12040 V = 3: POKE 35,24: GOTO 10140
  151. 13000  REM  CALCULATE RECONCILED BALANCE
  152. 13010  POKE 35,24: POKE 34,0: HOME 
  153. 13020  FOR I = 1 TO ZN -BTN +2
  154. 13030  IF R$(I) = "R"  THEN RBL = RBL + VAL(RA$(I))
  155. 13040  NEXT 
  156. 13050 RBL =  -1 *RBL
  157. 13060  IF RBL <0  THEN TRBL = RBL * -1: GOTO 13080
  158. 13070 TRBL = RBL
  159. 13080 J = TRBL *100:Z$ =  STR$( INT(J +.01)): IF  LEN(Z$) = 1  THEN Z$ = "0" +Z$
  160. 13110 RB$ =  STR$( INT(TRBL +.001)) +"." + RIGHT$(Z$,2)
  161. 13120  HTAB 5: VTAB 5: PRINT "THE BALANCE OF THE RECONCILED TRANSACTIONS FOR THIS MONTH IS $ ";
  162. 13130  IF RBL <0  THEN  PRINT "-";RB$: GOTO 13150
  163. 13140  PRINT RB$
  164. 13150 PRB = PRB +RBL
  165. 13160  IF PRB <0  THEN TPRB = PRB * -1: GOTO 13180
  166. 13170 TPRB = PRB
  167. 13180 J = TPRB *100:Z$ =  STR$( INT(J +.01)): IF  LEN(Z$) = 1  THEN Z$ = "0" +Z$
  168. 13210 PRB$ =  STR$( INT(TPRB +.001)) +"." + RIGHT$(Z$,2)
  169. 13220  HTAB 10: VTAB 7: PRINT "IF THE BANK'S BALANCE IS $ ";
  170. 13230  IF PRB <0  THEN  PRINT "-";PRB$;" THE ACCOUNT IS BALANCED": GOTO 13250
  171. 13240  PRINT PRB$;" THE ACCOUNT IS BALANCED"
  172. 13250  HTAB 5: VTAB 16: PRINT "WOULD YOU LIKE TO <R>EBALANCE, <P>RINT A STATEMENT, <`>ENTER THIS DATA,"
  173. 13260  HTAB 30: VTAB 17: PRINT " OR GOTO <M>AIN MENU?"
  174. 13270  HTAB 40: VTAB 18: GET X$
  175. 13280  IF X$ = "R"  OR X$ = "r"  THEN  GOSUB 14000: GOTO 4000
  176. 13290  IF X$ = "P"  OR X$ = "p"  THEN 20000
  177. 13300  IF X$ = "`"  OR X$ = "~"  THEN 30000
  178. 13310  IF X$ = "M"  OR X$ = "m"  THEN  GOSUB 14000: GOTO 40000
  179. 13320  IF X$ < >"m"  THEN 13270
  180. 14000  REM  PREVENT MISCALCULATION
  181. 14010  IF RBL <0  THEN RBL$ = "-" +RBL$
  182. 14020  IF PRB <0  THEN PRB$ = "-" +PRB$
  183. 14030 PRB =  VAL(PRB$) - VAL(RBL$):PRB$ =  STR$(PRB):RBL = 0
  184. 14040  FOR I = 1 TO 100
  185. 14050 R$(I) = " "
  186. 14060  NEXT 
  187. 14070  RETURN 
  188. 20000  REM  GET DATA TO PRINT RECONCILIATION STATEMENT
  189. 20001  HOME 
  190. 20002  PRINT D$;"PR#1"
  191. 20005  VTAB 1: PRINT "TR#";
  192. 20010  HTAB 6: PRINT "DATE";
  193. 20020  HTAB 16: PRINT "CK#";
  194. 20030  HTAB 22: PRINT "PAY TO:";
  195. 20040  HTAB 48: PRINT "R";
  196. 20050  HTAB 51: PRINT "AMOUNT";
  197. 20060  HTAB 61: PRINT "CAT";
  198. 20065  HTAB 70: PRINT "MEMO"
  199. 20069  VTAB 2: PRINT "-------------------------------------------------------------------------------"
  200. 20070  PRINT D$;"PR#0"
  201. 21000  REM  PRINT THE RECONCILIATION STATEMENT
  202. 21010 M = 1
  203. 21030  PRINT D$;"OPEN /RAM/MAIN.DATA,L$96"
  204. 21040  FOR I = BTN TO FTN% -1
  205. 21060  PRINT D$;"READ /RAM/MAIN.DATA,R";I
  206. 21070  INPUT TN%
  207. 21080  INPUT DT$
  208. 21090  INPUT CN$
  209. 21100  INPUT AMT$
  210. 21120  GOSUB 63000: LET PY$ = IN$
  211. 21140 R$ = R$(M)
  212. 21150  INPUT CTG$
  213. 21160  GOSUB 63000: LET MEM$ = IN$
  214. 21170  PRINT D$
  215. 22000  PRINT D$;"PR#1"
  216. 22010  VTAB V: PRINT TN%;
  217. 22020  HTAB 6: PRINT DT$;
  218. 22030  HTAB 16: PRINT CN$;
  219. 22040  HTAB 22: PRINT  LEFT$(PY$,25);
  220. 22050  HTAB 48: PRINT R$;
  221. 22060 AMT =  VAL(AMT$): IF AMT <0  THEN AMT =  -1 *AMT
  222. 22070 J = AMT *100:Z$ =  STR$( INT(J +.01)): IF  LEN(Z$) = 1  THEN Z$ = "0" +Z$
  223. 22080 Y =  LEN(Z$) -2
  224. 22090  IF Y <0  THEN Z$ = AMT$
  225. 22100  IF Y < = 0  THEN Y = 1
  226. 22110 H = 56 -Y
  227. 22120  HTAB H: PRINT  INT(AMT +.001);"."; RIGHT$(Z$,2);
  228. 22140  HTAB 61: PRINT CTG$;
  229. 22150  HTAB 70: PRINT  LEFT$(MEM$,10)
  230. 22160  PRINT D$;"PR#0"
  231. 22180 M = M +1
  232. 22190  NEXT 
  233. 22195  PRINT D$;"CLOSE /RAM/MAIN.DATA"
  234. 23000  PRINT D$;"PR#1"
  235. 23030  PRINT "------------------------------------------------------------------------------"
  236. 23365  PRINT 
  237. 23370  HTAB 5: PRINT "THE BALANCE OF THE RECONCILED TRANSACTIONS FOR THIS MONTH IS $ ";
  238. 23380  IF RBL <0  THEN  PRINT "-";RB$: GOTO 23445
  239. 23390  PRINT RB$
  240. 23445  PRINT 
  241. 23450  HTAB 10: PRINT "IF THE BANK'S BALANCE IS $ ";
  242. 23460  IF PRB <0  THEN  PRINT "-";PRB$;" THE ACCOUNT IS BALANCED": GOTO 23475
  243. 23470  PRINT PRB$;" THE ACCOUNT IS BALANCED"
  244. 23475  PRINT D$;"PR#0":PF = 0
  245. 23478  HOME 
  246. 23480  HTAB 5: VTAB 16: PRINT "WOULD YOU LIKE TO <R>EBALANCE, <P>RINT A STATEMENT, <`>ENTER THIS DATA,"
  247. 23490  HTAB 30: VTAB 17: PRINT " OR GOTO <M>AIN MENU?"
  248. 23500  HTAB 40: VTAB 18: GET X$
  249. 23510  IF X$ = "R"  OR X$ = "r"  THEN  GOSUB 14000: GOTO 4000
  250. 23520  IF X$ = "P"  OR X$ = "p"  THEN 21000
  251. 23530  IF X$ = "`"  OR X$ = "~"  THEN 30000
  252. 23540  IF X$ = "M"  OR X$ = "m"  THEN  GOSUB 14000: GOTO 40000
  253. 23550  IF X$ < >"m"  THEN 23478
  254. 23560  END 
  255. 30000  REM  SAVE RECONCILIATION DATA
  256. 31010 M = 1
  257. 31030  PRINT D$;"OPEN /RAM/MAIN.DATA,L$96"
  258. 31040  FOR I = BTN TO FTN% -1
  259. 31060  PRINT D$;"READ /RAM/MAIN.DATA,R";I
  260. 31070  INPUT TN%
  261. 31080  INPUT DT$
  262. 31090  INPUT CN$
  263. 31100  INPUT AMT$
  264. 31120  GOSUB 63000: LET PY$ = IN$
  265. 31130  INPUT R$
  266. 31150  INPUT CTG$
  267. 31160  GOSUB 63000: LET MEM$ = IN$
  268. 31170  PRINT D$
  269. 31180  IF R$(M) = "R"  THEN R$ = "R"
  270. 31190  IF RO$(M) = "R"  THEN R$ = "R"
  271. 32000  PRINT D$;"WRITE /RAM/MAIN.DATA,R";I
  272. 32010  PRINT TN%
  273. 32020  PRINT DT$
  274. 32030  PRINT CN$
  275. 32040  PRINT AMT$
  276. 32050  PRINT PY$
  277. 32060  PRINT R$
  278. 32140  PRINT CTG$
  279. 32150  PRINT MEM$
  280. 32160  PRINT D$
  281. 32180 M = M +1
  282. 32190  NEXT 
  283. 32195  PRINT D$;"CLOSE /RAM/MAIN.DATA"
  284. 35000  PRINT D$;"OPEN /RAM/RECON.BAL.DATA"
  285. 35010  PRINT D$;"WRITE /RAM/RECON.BAL.DATA"
  286. 35020  PRINT PRB$
  287. 35030  PRINT D$;"CLOSE /RAM/RECON.BAL.DATA"
  288. 35040 RBL = 0
  289. 35050  FOR I = 1 TO 100
  290. 35060 R$(I) = " "
  291. 35070  NEXT 
  292. 40000  REM  TO MAIN MENU
  293. 40010  POKE 216,0
  294. 40020  PRINT D$;"CHAIN /RAM/CW,@4005"
  295. 50000  REM  ONERR ROUTINE
  296. 50010  PRINT D$;"CLOSE"
  297. 50020  HOME 
  298. 50030  HTAB 29: VTAB 8
  299. 50040  PRINT "ERROR #"; PEEK(222);" IN LINE "; PEEK(218) + PEEK(219) *256
  300. 50050  IF  PEEK(222) = 5  THEN 50100
  301. 50060  GOTO 50200
  302. 50100  HTAB 18: VTAB 11
  303. 50110  PRINT "YOU HAVE INSUFFICIENT DATA FOR THIS SEARCH"
  304. 50200  HTAB 26: VTAB 14
  305. 50210  PRINT "PRESS <ANY KEY> TO CONTINUE"
  306. 50220  HTAB 40: VTAB 16
  307. 50230  GET X$
  308. 50240  CALL  -3288: GOTO 40000
  309. 60000  END 
  310. 62000  REM  INPUT ANYTHING
  311. 62010  LET IN$ = "X"
  312. 62020  FOR J = 768 TO 790
  313. 62030  READ I
  314. 62040  POKE J,I
  315. 62050  NEXT J
  316. 62060  DATA  162,0,32,117,253,160,2,138,145,105,200,169,0,145,105,200,169,2,145,105,76,57,213
  317. 62070  RETURN 
  318. 63000  REM  CALL ANYTHING
  319. 63010  CALL 768
  320. 63020 IN$ =  MID$ (IN$,1)
  321. 63030  RETURN